package com.hksj.base.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hksj.base.entity.Properties;
import com.hksj.base.query.BaseAlarmDeviceQuery;
import com.hksj.base.query.BaseDeviceQuery;
import com.hksj.base.query.BaseRecordQuery;
import com.hksj.base.query.DeviceOverviewQuery;
import com.hksj.base.vo.DeviceOverviewVO;
import com.hksj.base.vo.DeviceStatusVO;
import com.hksj.base.vo.DeviceVO;
import com.hksj.base.vo.ProductDeviceOverviewVO;
import com.hksj.common.config.annotation.DS_TAOS;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface DefaultDeviceMapper {
    List<DeviceStatusVO> pageDevice(@Param("query") BaseDeviceQuery query);

    @DS_TAOS
    List<Properties> pageRecord(@Param("query") BaseRecordQuery query);

    @DS_TAOS
    Long count(@Param("query") BaseRecordQuery query);

    DeviceOverviewVO getDeviceOverview(@Param("query") DeviceOverviewQuery query);
    
    List<ProductDeviceOverviewVO> listProductDeviceOverview(@Param("query") DeviceOverviewQuery query);

    DeviceVO getDeviceInfo(@Param("deviceId") String deviceId);

    List<String> pageDeviceId(@Param("query") BaseDeviceQuery query, Page<DeviceStatusVO> page);

    @DS_TAOS
    List<Properties> listRecord(@Param("query") BaseRecordQuery query);

    List<String> pageAlarmDeviceId(@Param("query")BaseAlarmDeviceQuery query, Page<DeviceStatusVO> deviceStatusVOPage);
}
